package com.lianqi.emcpframework.logging.annotation;

import java.lang.annotation.*;

/**
 * @program emcp-framework
 * @ClassName InvokingLogger
 * @description: 服务调用日志注解 在类或者方法上添加此注解 记录方法调用日志记录
 * @author: sky
 * @create: 2018/11/17 14:14
 */
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface InvokingLogger {
    /**
     *
     * @return 对类或者方法的简单说明
     */
    String value();

    /**
     *
     * @return 对类或方法的详细说明
     */
    String[] describe() default "";

    /**
     * 操作类型
     * 
     * @return
     */
    ActionType[] actionTypes();

    /**
     * 日志级别 默认为info
     * 
     * @return
     */
    InvokingLoggerLevel level() default InvokingLoggerLevel.INFO;

    /**
     *
     * @return 是否取消日志记录
     */
    boolean ignore() default false;
}
